package utilities;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.awt.image.BufferedImage;
import java.awt.*;

import javax.imageio.ImageIO;

import org.xhtmlrenderer.util.FSImageWriter;
import org.xhtmlrenderer.util.ImageUtil;

/**
 */
public class Thumbnails {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("Enter directory name");
            return;
        }
        String dirName = args[0];
        File dir = new File(dirName);
        if (!dir.exists()) {
            System.out.println("Directory not found: " + dirName);
            return;
        }
        if (!dir.isDirectory()) {
            System.out.println("Not a directory: " + dirName);
            return;
        }
        File[] pngs = dir.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return file.getName().endsWith(".png") && file.getName().indexOf("thumb") == - 1;
            }
        });
        FSImageWriter writer = new FSImageWriter("png");
        int width = 141;
        int height = 113;
        for (int i = 0; i < pngs.length; i++) {
            File png = pngs[i];
            try {
                String path = png.getAbsolutePath();
                String tpath = path.substring(0, path.indexOf(".png")) + "-thumb.png";
                BufferedImage bi = ImageIO.read(png);
                Image img = bi.getScaledInstance(width, height, Image.SCALE_FAST);
                bi = ImageUtil.convertToBufferedImage(img, BufferedImage.TYPE_4BYTE_ABGR);
                Graphics g = bi.getGraphics();
                writer.write(bi, tpath);
                System.out.println("Wrote: " + tpath);
            } catch (IOException e) {
                System.err.println("Can't read file, skipping: " + png.getName() + ", " + e.getMessage());
                continue;
            }
        }
    }
}
